Computes an estimate to the derivative of an evenly-sampled data set using total variation regularization.
See Also
van Breugel, Floris & Brunton, Bingni & Kutz, J.. (2020). Numerical differentiation of noisy data: A unifying multi-objective optimization framework.
Oliver K. Ernst, Ph. D. (2021, February 16). How to differentiate noisy signals. Medium. https://oliver-k-ernst.medium.com/how-to-differentiate-noisy-signals-2baf71b8bb65
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | dt |
The time step between data points. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | x |
An N-element array containing the data whose derivative is to be estimated. |
|
| real(kind=real64), | intent(in) | :: | alpha |
The regularization parameter. |
||
| integer(kind=int32), | intent(in), | optional | :: | maxiter |
The maximum number of iterations to allow. The default is 20 iterations. |
|
| real(kind=real64), | intent(in), | optional | :: | tol |
The convergence tolerance to use. The tolerance is applied to the difference in Euclidean norms of the derivative update vector. Once the norm of the update vector is changing less than this tolerance, the iteration process will terminate. The default is 1e-3. |
|
| integer(kind=int32), | intent(out), | optional | :: | niter |
The number of iterations actually performed. |
An N-element array containing the estimate of the derivative.